#include "BMS_Mode.h"

BMS_SYS_StateTypedef BMS_SYS_Mode;
//监控模式-根据充放电时的电流设置为不同模式
void BMS_Monitor_Mode(void)
{
   BMS_SYS_Mode.SYS_Mode=BMS_Mode_Null;//初始化状态
    
    //如果是睡眠模式下 电流>=0.02A||电流<=-0.02A进入待机模式，即唤醒
    if(BMS_SYS_Mode.SYS_Mode==BMS_Mode_Sleep)
    {
        if((BQ_SampleData.BatteryCurrent>=0.02)||(BQ_SampleData.BatteryCurrent<=-0.02))
        {
            BMS_SYS_Mode.SYS_Mode=BMS_Mode_Standby;//待机模式
            printf("Wake Up\r\n");
        }
        return;
    }
    //如果 电流<0.02A&&电流>-0.02A,且没有电芯在均衡进入睡眠模式
     if((BQ_SampleData.BatteryCurrent<0.02)&&(BQ_SampleData.BatteryCurrent>-0.02))
     {
        BMS_SYS_Mode.SYS_Mode=BMS_Mode_Standby;
         //
         //获取电池均衡信号量
         
         
         ///
         
     }else if(BQ_SampleData.BatteryCurrent>=0.02)
     {
        BMS_SYS_Mode.SYS_Mode=BMS_Mode_Charge;
        printf("Charge Mode\r\n");
     }
     else if(BQ_SampleData.BatteryCurrent<=-0.02)
     {
        BMS_SYS_Mode.SYS_Mode=BMS_Mode_Discharge;
        printf("Discharge Mode\r\n");
     }
}